package com.br.android.widing.db;

import com.br.android.widing.entity.Categoria;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class WidingCategoriaDAO extends WidingDAO {

	public WidingCategoriaDAO(Context context) {
		super(context);
	}

	public void inserirCategoria(Categoria categoria) {
		String sql = "INSERT INTO categoria(nomecategoria) VALUES(?)";
		Object[] obj = new Object[] { categoria.getNomecategoria() };
		getWritableDatabase().execSQL(sql, obj);
	}

	public void inserirAtualizarCategoria(Categoria categoria) {
		String sql = "INSERT OR REPLACE INTO categoria(idcategoria, nomecategoria) VALUES(?,?)";
		Object[] obj = new Object[] { categoria.getIdcategoria(),
				categoria.getNomecategoria() };
		getWritableDatabase().execSQL(sql, obj);
	}

	public void alterarCategoria(Categoria categoria) {
		String sql = "UPDATE categoria set nomecategoria = ? WHERE idcategoria = ?";
		Object[] obj = new Object[] { categoria.getNomecategoria(),
				categoria.getIdcategoria() };
		getWritableDatabase().execSQL(sql, obj);
	}

	public void excluirCategoria(int idCategoria) {
		String sql = "DELETE FROM categoria WHERE idcategoria = ?";
		Object[] obj = new Object[] { idCategoria };
		try {
			getWritableDatabase().execSQL(sql, obj);
		} catch (Exception e) {
			Log.e("ERRO AO EXCLUIR CATEGORIA", e.getMessage());
		}
		
	}

	public WidingCategoriaCursor consultarCategorias() {
		String sql = WidingCategoriaCursor.QUERY_CATEGORIA;
		SQLiteDatabase db = getReadableDatabase();
		WidingCategoriaCursor c = (WidingCategoriaCursor) db
				.rawQueryWithFactory(new WidingCategoriaCursor.Factory(), sql,
						null, null);
		c.moveToFirst();
		return c;
	}

	public boolean verificarExistenciaCategoria(String nome) {
		String sql = WidingCategoriaCursor.QUERY_CATEGORIA_BY_NOME;
		SQLiteDatabase db = getReadableDatabase();
		WidingCategoriaCursor c = (WidingCategoriaCursor) db
				.rawQueryWithFactory(new WidingCategoriaCursor.Factory(), sql,
						(String[]) new Object[] { nome }, null);
		c.moveToFirst();
		if (c.getCount() != 0) {
			return true;
		}
		return false;
	}
}
